package org.leonos.web.system.model;

import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Model;
import org.leonos.utils.Utils;

import java.util.List;

/**
 * 菜单配置
 * @author LeonXiao
 */
public class Menu extends Model<Menu> {

    /**
     * id
     * name         显示名称
     * pid	        父级
     * mlevel       层次  1项目，2菜单，3按钮
     * requesturl   访问路径
     * permissions	权限标识
     * micon  图标
     * sort   排序
     * remark 备注
     * date   最后操作时间
     * userid 最后操作人id
     * status 状态，true删除
     * isshow 是否显示，true显示
     */
    public final static Menu dao = new Menu();

    /**
     * 根据pid查询子菜单
     * @param pid
     *          父级菜单id
     * @return List<Menu>
     */
    public List<Menu> findSubMenu(String pid){
        String sql = "select * from sys_menu where status = 0 and pid = ? order by sort asc";
        return find(sql, pid);
    }

    /**
     * 获取最大序号并加1
     * @param id
     *          父级菜单的id
     * @return int
     */
    public int getSort(String id) {
        String sql = "select max(sort) from sys_menu where status = 0 and pid = ?";
        Number bum = Db.queryNumber(sql, id);
        return Utils.isNotNull(bum) ? bum.intValue() + 1 : 0;
    }

    /**
     * 根据权限标识查询菜单
     * @param permissions
     *          权限标识
     * @return int
     */
    public Menu findByPermissions(String permissions) {
        String sql = "select id from sys_menu where status = 0 and permissions = ?";
        return findFirst(sql, permissions);
    }

}

